Lists or queues of free items (referred to sometimes as free lists or free list data structures) are often employed to prevent allocating or deallocating resources such as memory. For example, generic memory allocators typically employ a singly-linked list of free items which can lead to significant numbers of L-2 processor cache misses on multiprocessor systems. Such L-2 processor cache misses can occur even when atomic, lock-free operations are used to manage items in such a list.